#include "widget.h"
#include "ui_widget.h"

#include <QLabel>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 1.设置不同格式的文本 —— textFormat
    // displayLabelText();

    // 2.设置Label图片 —— pixmap
    // setPicture();

    // 3.设置对齐 —— alignment、自动换行 —— wordwrap、缩进 —— indent、 边距 —— margin
    // setOtherProperty();

    // 4.设置伙伴 —— buddy
    setBuddyProperty();
}

Widget::~Widget()
{
    delete ui;
}

void Widget::setBuddyProperty()
{
    ui->label_1->setBuddy(ui->radioButton_1);
    ui->label_2->setBuddy(ui->radioButton_2);
}

//void Widget::setOtherProperty()
//{
//    // 设置水平居中对齐
//    ui->label_1->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
//    ui->label_1->setText("垂直水平居中的文本");
//    // 设置自动换行
//    ui->label_2->setAlignment(Qt::AlignTop | Qt::AlignLeft);
//    ui->label_2->setWordWrap(true);
//    ui->label_2->setText("这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本");
//    // 设置缩进
//    ui->label_3->setAlignment(Qt::AlignTop | Qt::AlignLeft);
//    ui->label_3->setIndent(20);
//    ui->label_3->setText("这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本");
//    // 设置边距
//    ui->label_4->setAlignment(Qt::AlignTop | Qt::AlignLeft);
//    ui->label_4->setMargin(20);
//    ui->label_4->setText("这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本这是一个很⻓的⽂本");
//}

void Widget::setPicture()
{
    QLabel* label = new QLabel(this);
    label->setObjectName("myLabel");
    label->setGeometry(0,0,800,600);

    QPixmap pixmap(":/dog.png");
    label->setPixmap(pixmap);

    // 设置图片和窗口一样大
    label->setScaledContents(true);
    // 设置图片随窗口改变一起改变
    // 重写 resizeEvent 方法即可
}

// 重写 resizeEvent 方法
void Widget::resizeEvent(QResizeEvent *event)
{
    QLabel* findLabel = findChild<QLabel*>("myLabel");
    if(findLabel != nullptr)
    {
        findLabel->setGeometry(0, 0, this->width(), this->height());
        qDebug() << this->geometry();
    }
}

void Widget::displayLabelText()
{
    QLabel* label1 = new QLabel("这是一段纯文本", this);
    QLabel* label2 = new QLabel("<b> 这是一段富文本</b>", this);
    QLabel* label3 = new QLabel("## 这是一段markdown文本", this);

    label1->move(200, 50);
    label2->move(200, 150);
    label3->move(200, 250);

    label1->setFixedSize(400, 50);
    label2->setFixedSize(400, 50);
    label3->setFixedSize(400, 50);


    label1->setTextFormat(Qt::PlainText);
    label2->setTextFormat(Qt::RichText);
    label3->setTextFormat(Qt::MarkdownText);
}
